ছবি অপাসিটি এবং Transparency সেট করা

Java Technologies - অ্যাপাচি পিওআই (পাওয়ারপয়েন্ট) ছবি (Images) যোগ করা |
137
137

অ্যাপাচি পিওআই (Apache POI) একটি শক্তিশালী লাইব্রেরি যা Java ব্যবহারকারীদের মাইক্রোসফট অফিস ফাইলগুলি প্রক্রিয়া করার সুযোগ দেয়। PowerPoint (.pptx এবং .ppt) ফাইলগুলির মধ্যে ছবি বা ইমেজের অপাসিটি (opacity) এবং ট্রান্সপ্যারেন্সি (transparency) সেট করা সাধারণত অনেকটা জটিল হতে পারে, তবে Apache POI এটি সমর্থন করে এবং আপনি সহজেই ছবির সচ্ছলতা এবং অপ্রতিবিম্ব সেট করতে পারেন।

১. XSLF (PowerPoint .pptx ফাইল)

XSLF মডিউলটি .pptx ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়, এবং এটি আপনি PowerPoint স্লাইডে ছবির অপাসিটি এবং ট্রান্সপ্যারেন্সি সেট করতে ব্যবহার করতে পারবেন।

১.১ Maven ডিপেনডেন্সি

প্রথমত, আপনাকে Apache POI এর poi-ooxml ডিপেনডেন্সি আপনার Maven প্রোজেক্টে যোগ করতে হবে:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version> <!-- NiFi ব্যবহারকারীর নির্দিষ্ট ভার্সন চেক করুন -->
</dependency>

১.২ ছবি অপাসিটি এবং Transparency সেট করা

Apache POI XSLF মডিউল দিয়ে PowerPoint স্লাইডে ছবি যোগ করা এবং তার অপাসিটি কনফিগার করা সম্ভব। নিচে কোডের মাধ্যমে এটি কিভাবে করা যায় তা দেখানো হল:

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.sl.usermodel.PictureData;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class PowerPointImageOpacity {
    public static void main(String[] args) throws IOException {
        // PowerPoint ফাইল তৈরি করা
        XMLSlideShow ppt = new XMLSlideShow();

        // স্লাইড তৈরি করা
        XSLFSlide slide = ppt.createSlide();

        // ছবির ফাইল ইনপুট স্ট্রিম তৈরি
        FileInputStream imageStream = new FileInputStream("image.jpg");

        // ছবিটি PowerPoint ফাইলে সংযুক্ত করা
        byte[] pictureData = imageStream.readAllBytes();
        XSLFPictureData picture = ppt.addPicture(pictureData, PictureData.PictureType.JPEG);
        XSLFPictureShape pictureShape = slide.createPicture(picture);

        // ছবি কোঅর্ডিনেট এবং সাইজ সেট করা
        pictureShape.setAnchor(new java.awt.Rectangle(100, 100, 400, 300));

        // ছবির অপাসিটি এবং ট্রান্সপ্যারেন্সি সেট করার জন্য একটি BufferedImage তৈরি
        BufferedImage bufferedImage = new BufferedImage(400, 300, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = bufferedImage.createGraphics();
        g2d.setComposite(java.awt.AlphaComposite.getInstance(java.awt.AlphaComposite.SRC_OVER, 0.5f)); // 50% অপাসিটি
        g2d.drawImage(bufferedImage, 0, 0, null);
        g2d.dispose();

        // স্লাইডে ছবির সাথে অপ্রতিবিম্ব তৈরি
        FileOutputStream out = new FileOutputStream("output_presentation.pptx");
        ppt.write(out);
        out.close();

        System.out.println("PowerPoint ফাইল তৈরি হয়েছে এবং ছবির অপাসিটি সেট করা হয়েছে!");
    }
}

১.৩ অপাসিটি সেট করা

এই কোডে, AlphaComposite ব্যবহার করা হয়েছে ছবির অপাসিটি নিয়ন্ত্রণ করার জন্য। এখানে AlphaComposite.SRC_OVER এবং 0.5f মান দিয়ে ৫০% অপাসিটি সেট করা হয়েছে। আপনি এই মান পরিবর্তন করে ছবির ট্রান্সপ্যারেন্সি নিয়ন্ত্রণ করতে পারেন।

  • 0.0f (100% ট্রান্সপ্যারেন্ট)
  • 1.0f (100% অপাসিটি)

১.৪ ছবির সাইজ এবং অবস্থান

  • pictureShape.setAnchor(new java.awt.Rectangle(100, 100, 400, 300)); কোডের মাধ্যমে ছবির সাইজ এবং অবস্থান সিলেক্ট করা হয়।

২. HSLF (PowerPoint .ppt ফাইল)

HSLF মডিউলটি পুরনো .ppt ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়। এটি ব্যবহার করে PowerPoint স্লাইডে ছবি এবং তার অপাসিটি সেট করা সম্ভব, তবে এটি XSLF এর মতো সরাসরি অপাসিটি সেট করার সুবিধা সরবরাহ করে না। তবুও, আপনি ছবির বিভিন্ন বৈশিষ্ট্য কাস্টমাইজ করতে পারেন, তবে HSLF তে অপাসিটি কনফিগার করা আরও জটিল।


৩. ছবির অপাসিটি নিয়ন্ত্রণের আরও কিছু টিপস

  1. Java AWT AlphaComposite: আপনি Java AWT লাইব্রেরির AlphaComposite ক্লাস ব্যবহার করে সঠিক অপাসিটি নিয়ন্ত্রণ করতে পারেন। এটি ছবি এবং অন্য গ্রাফিক্সের মধ্যে ট্রান্সপ্যারেন্সি এবং অপাসিটি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।
  2. BufferedImage: ছবি আকারের এবং অপাসিটির পরিবর্তন করতে BufferedImage ব্যবহার করা হয়, যা Java Graphics API এর অংশ।
  3. কমপ্লেক্স ফরম্যাটিং: একাধিক স্তরে বিভিন্ন গ্রাফিক্স যেমন ব্যাকগ্রাউন্ড ইমেজ এবং টেক্সট লেয়ারের উপর অপাসিটি প্রয়োগ করা যেতে পারে।

সারাংশ

অ্যাপাচি পিওআই (Apache POI) PowerPoint ফাইলের ছবির অপাসিটি এবং ট্রান্সপ্যারেন্সি সেট করার জন্য শক্তিশালী টুল প্রদান করে। XSLF (নতুন .pptx ফাইল) মডিউল ব্যবহার করে আপনি AlphaComposite ক্লাস এবং BufferedImage ব্যবহার করে অপাসিটি এবং ট্রান্সপ্যারেন্সি নিয়ন্ত্রণ করতে পারবেন। যদিও HSLF (পুরোনো .ppt ফাইল) এর জন্য সরাসরি অপাসিটি কনফিগারেশন সমর্থিত নয়, আপনি কিছু নির্দিষ্ট বৈশিষ্ট্য কাস্টমাইজ করে ছবির গুণগত মান উন্নত করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion